home *** CD-ROM | disk | FTP | other *** search
- BEGIN {
- getline
- if ($1 != "v") {
- print "error: bad viewing" >"/dev/stderr"
- exit 1
- }
- getline
- getline
- vx = $1
- vy = $2
- vz = $3
- print "# from", $1, $2, $3
- getline
- print "# up", $1, $2, $3
- getline
- print "# at", $1 + vx, $2 + vy, $3 + vz
- getline
- print "# fov", $1 / 2, $2 / 2
- getline
- if ($1 != 3) {
- print "error: not RGB" >"/dev/stderr"
- exit 1
- }
- getline
- print "Number objects", $1
- no = $1
- for (o=1;o<=no;o++) {
- getline
- getline
- getline
- e = $1
- if (e == 1) {
- getline
- er = $1
- if (er > 1) er = 1
- eg = $2
- if (eg > 1) eg = 1
- eb = $3
- if (eb > 1) eb = 1
- }
- if (e == 0) {
- er = 0
- eg = 0
- eb = 0
- }
- getline
- getline
- rr = $1
- rg = $2
- rb = $3
- getline
- if ($1 != 0) {
- print "error: primitive not yet supported" >"/dev/stderr"
- exit 1
- }
- print "Object obj" o, "mesh {"
- print " OWMatrix mat" o, "{ 1 0 0 0 1 0 0 0 1 0 0 0 }"
- printf " Prop prop%d { E{ %g %g %g } p{ %g %g %g } Kd{ 1 } Ks{ 0 }\n",\
- o, er, eg, eb, rr, rg, rb
- print " NumMeshes 1"
- print " Mesh mesh" o, "1 {"
- getline
- vx1 = $1
- vy1 = $2
- vz1 = $3
- getline
- vx2 = $1
- vy2 = $2
- vz2 = $3
- getline
- vx3 = $1
- vy3 = $2
- vz3 = $3
- getline
- vx4 = $1
- vy4 = $2
- vz4 = $3
- p0x = vx2 - vx1
- p0y = vy2 - vy1
- p0z = vz2 - vz1
- p1x = vx4 - vx1
- p1y = vy4 - vy1
- p1z = vz4 - vz1
- nx = p0y * p1z - p0z * p1y
- ny = p0z * p1x - p0x * p1z
- nz = p0x * p1y - p0y * p1x
- nl = sqrt(nx * nx + ny * ny + nz * nz)
- nx /= nl
- ny /= nl
- nz /= nl
- print " Patch norm1 4 {"
- printf " { %g %g %g } { %g %g %g }\n", nx, ny, nz, nx, ny, nz
- printf " { %g %g %g } { %g %g %g }\n", nx, ny, nz, nx, ny, nz
- print " Patch vert1 4 {"
- printf " { %g %g %g } { %g %g %g }\n", vx1, vy1, vz1, vx2, vy2, vz2
- printf " { %g %g %g } { %g %g %g }\n", vx3, vy3, vz3, vx4, vy4, vz4
- print " }"
- print "}"
- }
- }
-